草庐IT

Python Django 模板 : Iterate Through List

全部标签

c++ - 如何在编译时调试模板参数?

我有一段代码可以简化为:templatestructMyStruct;//NodefinitionbydefaulttemplatestructMyStruct{...};//Specializationforpointers现在,在我的代码中某处,我得到了MyStruct的实例化这恰好是未定义的(没有C++0x/011,没有Boost……没什么特别的,只是普通的C++03):errorC2027:useofundefinedtype'MyStruct'问题是,我不知道这是哪里造成的,因为进行实例化的代码本身就是一个模板,并且从很多地方调用,不同的论点。有没有办法以某种方式弄清楚T是什

c++ - 在模板中提取常见的类行为

我发现在我的程序中我需要让几个类使用以下通用模式。其背后的想法是resource_mgr维护一个指向resource对象的引用计数指针列表,并专门控制它们的生命周期。客户端不能创建或删除resource实例,但可以从resource_mgr请求它们。classresource_impl{public://...private:resource_impl(...);~resource_impl();//...friendclassresource_mgr;}classresource_mgr{public://...shared_ptrnew_resource(...);private:

c++ - C++ 中类似 QuickCheck 的模板函数基准测试

受到Haskell自动生成(随机)给定类型实例的优雅方式的启发,例如在QuickCheck中,我正在尝试弄清楚如何编写一个as-easy-to-use-as-可能的C++基准测试框架。我想我将使用函数模板,可能会借助C++11中的新功能,例如可变参数模板。我希望我只需要指定一个函数或更好的函数模板和一个与函数的参数兼容的STL模板容器类型(反过来它的value_type)。我认为,使用一组不同大小的输入对函数进行基准测试有点类似于C++11中线程的设置和生成方式。我的第一个尝试是复制thread类的构造函数并将其转换为benchmark函数作为templateinlinevoidben

c++ - C++ 中的通用访问者基类模板 - 重载问题

我认为编写通用访问者基类模板会是一个简单的练习。目标是能够写typedefvisitormy_visitor;...然后让my_visitor成为功能上等同于的类型structmy_visitor{virtualvoidvisit(some_base&){}virtualvoidvisit(some_derived1&){}virtualvoidvisit(some_derived2&){}};我可以继承该类型层次结构的实际有用的派生访问者类,它根据需要覆盖不同的visit()版本。我希望它适用于具有任何继承关系的任意数量的类型,并且我不想使用任何使用type_info比较重新实现虚函

c++ - 可变参数模板函数的仿函数

我想将仿函数转换为泛型函数,但出现编译器错误。这是代码:templatestructCreator{templatestaticstd::shared_ptrcreate(Ts&&...vs){std::shared_ptrt(newT(std::forward(vs)...));returnt;}};classCar:publicCreator{private:friendclassCreator;Car(){}};intmain(){autocar=Car::create();std::function()>createFn=&Car::create;return0;}我在GCC4

模板内的 C++ 初始值设定项列表

我想更多地了解C++11,所以我编写了我所知道的最简单的initializer_list测试,但在模板内部,这是一个“免费”函数,每当我编译它时我都会收到这个错误(用于漂亮格式的clang++)/home/alex/repo/mine/mlcppl/test/utiltest1.cc:16:3:error:nomatchingfunctionforcallto'makevec'mlcppl::makevec({"alex","herrmann"});代码如下:namespacemlcppl{templatevectormakevec(initializer_listinitlist){

c++ - 表达式模板 - 无法专门化函数模板

我试图制作一些表达式模板作为对thisquestion的回答,但我遇到了编译器错误,我无法弄清楚。到目前为止,我已经获得了相当小的SSCCEtemplateclassinherit2:privatesub_expr{//line3public:inherit2(sub_exprrhs):sub_expr(rhs){}templateautooperator()(constT&v)const->decltype(sub_expr::operator()(v))//line7{returnsub_expr::operator()(v);}};classexpression_paramete

c++ - 指向 const 成员函数的非类型模板函数指针

我正在编写一个委托(delegate)类,但它无法采用const成员函数。这是一个测试用例:classfoo{public:voidMemberFunction(){printf("nonconstmemberfunction\n");}voidConstMemberFunction()const{printf("constmemberfunction\n");}};templatevoidCall(C*instance){(instance->*Function)();}intmain(intargc,char**argv){foobar;Call(&bar);Call(&bar);

c++ - 在模板类中重载下标运算符

我正在尝试实现一个通用(模板)双向链表,类似于C#.NET实现。我想构建一个“捷径”方法来获取具有特定索引的元素,并决定使用下标运算符。我按照说明做了,想出了这样的东西。templateclassList{public:T&operator[](intindex){returniterator->GetCurrentValue();//iteratorisoftypeIteratorandreturnsT&}};但是当我开始在我的代码中使用它时:List*myList=newList();...intvalue=myList[i];//iisint我收到一个编译器错误:main.cpp

c++ - 模板隐式实例化和内联成员

我想知道什么时候调用模板类的成员函数。在哪里生成定义?例如:templateclassA{public:A(){cout::A()"::f()"ob;//Timet1ob.f();//Timet2}所以我想知道模板类A是做什么的看起来像point1&point2案例1:时间t1:classA{public:A(){cout::A()"::fyetsothereisjustadeclaration};时间t1classA{public:A(){cout::A()"::f()"案例1:时间t1classA{public:A();voidf();};A::A(){cout::A()"时间t2